	/**
	 * @info 数值格式化为日期
	 * @param str
	 * @returns {String}
	 */
	function num2Date(str){
		if(isNotEmpty(str)){
			var n=Number(str);
			var date=new Date(n);
			var y=date.getFullYear();
			var m=date.getMonth()+1;
			var d=date.getDate();
			var h=date.getHours();
			var mi=date.getMinutes();
			var s=date.getSeconds();
			return y+"-"+append0(m)+"-"+append0(d)+" "+append0(h)+":"+
			append0(mi)+":"+append0(s);
		}else{
			return "null";
		}
	}


	/**
	 * @info 数值格式化为日期
	 * @param str
	 * @returns {String}
	 */
	function num2DateYMD(str){
		if(isNotEmpty(str)){
			var n=Number(str);
			var date=new Date(n);
			var y=date.getFullYear();
			var m=date.getMonth()+1;
			var d=date.getDate();
			var h=date.getHours();
			var mi=date.getMinutes();
			var s=date.getSeconds();
			return y+"-"+append0(m)+"-"+append0(d);
		}else{
			return "";
		}
	}


	/**
	 * @info 如果数字的值小于10 前面补0
	 * @param {} s
	 * @return {}
	 */
	function append0(s){
		if(Number(s)<10){
			return "0"+s;
		}else
			return s;
	}


	/**
	 * @info 判断是否为空串
	 * @param str
	 * @returns {Boolean}
	 */
	function isNotEmpty(str) {
		if (null == str)
			return false;
		else if (typeof str == "undefined")
			return false;
		else if ("" == str)
			return false;
		else if (str.length == 0)
			return false;
		else
			return true;
	}


	/**
	 * @info 截取日期字符串为199809形式
	 * @param str
	 *            1998-09,199809
	 * @returns
	 */
	function getYyyymm(str){
		if(str=="" || str=="null")
			return "";
		// return str.substring(0,4)+str.substring(5,7);
		// GARUDA日期字段有横杠( - ),放弃原先截取掉横杠( - )的方法
		return str;
	}


	/**
	 * @info 截取日期字符串为199809形式
	 * @param str
	 *            1998-09,1998-09-09
	 * @returns
	 */
	function yyyymmToYM(str){
		if(str=="" || str=="null")
			return "";
		return str.substring(0,4)+"-"+str.substring(4,6);
	}


	/**
	 * @info 截取日期字符串为19980909形式
	 * @param str
	 *            1998-09-09,19980909
	 * @returns
	 */
	function getFormatDate(str){
		if(str=="" || str=="null"){
			return "";
		}

		return str;
	}


	/**
	 * @info 获取当年日期
	 * @returns
	 */
	function getEntYearS(){
		var date=new Date();
		return date.getFullYear();
	}


	/**
	 * @info 获取当年第一月日期
	 * @returns
	 */
	function getCurtMonthS(){
		var date=new Date();
		var m=(date.getMonth()+1);
		return date.getFullYear()+ "-01";
	}


	/**
	 * @info 获取当年当月日期
	 * @returns
	 */
	function getEntMonthS(){
		var date=new Date();
		var m=(date.getMonth()+1);
		return date.getFullYear()+"-"+(m>=10?m+"":"0"+m);
	}


	/**
	 * @info 获取当月第一天日期
	 * @returns
	 */
	function getCurtMonthFirDay(){
		var date=new Date();
		var m=(date.getMonth()+1);
		return date.getFullYear()+"-"+(m>=10?m+"":"0"+m) + "-01";
	}


	/**
	 * @info 获取当一天日期
	 * @returns
	 */
	function getCurtDay(){
		var date=new Date();
		var month = (date.getMonth()+1);
		var day = date.getDate();
		return date.getFullYear()+"-"+(month>=10?month+"":"0"+month) + "-" + (day>=10?day+"":"0"+day);
	}


	/**
	 * @info 保留位小数
	 * @param srcNumber
	 * @param n
	 * @returns
	 */
	function format_number(srcNumber, n) {
		if(typeof srcNumber=='undefined'){
			return 0;
		}
		if(parseInt(srcNumber)==srcNumber)
		{
		//整数！
			return srcNumber;
		}
		var dstNumber = parseFloat(srcNumber);
		if (isNaN(dstNumber)) {
			return srcNumber;
		}
		if (dstNumber >= 0) {
			dstNumber = parseInt(dstNumber * Math.pow(10, n) + 0.5)
					/ Math.pow(10, n);
		} else {
			var tmpDstNumber = -dstNumber;
			dstNumber = parseInt(tmpDstNumber * Math.pow(10, n) + 0.5)
					/ Math.pow(10, n);
		}
		var dstStrNumber = dstNumber.toString();
		var dotIndex = dstStrNumber.indexOf('.');
		if (dotIndex < 0) {
			dotIndex = dstStrNumber.length;
			dstStrNumber += '.';
		}

		while (dstStrNumber.length <= dotIndex + n) {
			dstStrNumber += '0';
		}
		return dstStrNumber;
	}


	/**
	 * @info 将数值转化为2位的百分数字符串
	 * @param num
	 * @returns {String}
	 */
	function parseToPrecentNum(num) {
		if(typeof(num)=="undefined" ||num=="" ||num==null)
			return "0%";
		num = Number(num);
		return format_number(num * 100, 2) + "%";
	}
	
	/**
	 * @info 将数值转化为2位的百分数字符串
	 * @param num
	 * @returns {String}
	 */
	function parseToPrecentNumChart(num) {
		if(typeof(num)=="undefined" ||num=="" ||num==null)
			return "0";
		num = Number(num);
		return format_number(num * 100, 2);
	}

	/**
	 * @info 格式化未定义的对象
	 * @param ss
	 * @returns
	 */
	function formatUndefined(ss){
		if(typeof ss =='undefined')
			return "";
		else
			return ss;
	}


	/**
	 * 
	 * @param id
	 * @param names
	 * @param yTitle
	 * @param datas
	 *            ([{name: 'John',data: [5, 3, 4, 7, 2]}])
	 */
	function barChart(id,names,yTitle,datas){
		$('#'+id).highcharts({
			chart: {
				type: 'bar'
			},
			title: {
				text: ''
			},
			xAxis: {
				categories: names
			},
			yAxis: {
				min: 0,
				title: {
					text: yTitle
				}
			},
			legend: {
				enabled:false,
				backgroundColor: '#FFFFFF',
				reversed: true
			},
			plotOptions: {
				series: {
					stacking: ''// normal堆叠
				}
			},
			series: [{name: yTitle,data:datas}],
			credits : {enabled : false}
		});
	}


	/**
	 * @info 一个图，没有下面说明，鼠标移动上去有显示x,y值。
	 * @param id(哪个DIV作图)
	 * @param type(图的类型，line,spline,column,pie)
	 * @param names(x轴的数据)
	 * @param datas({name:"",data:[1,2,3,4,5]})
	 */
	function oneChart(id,type,names,datas){
		$('#'+id).highcharts({
			chart : {type : type},
			title : {text : ''},
			xAxis : {categories :names},
			yAxis : { min : 0,title : {text : ''} },
			legend:{enabled:false},
			tooltip : {
				formatter : function() {
					return '<b>' + this.x + '</b>'+ ':'+ this.point.y;
				}
			},
			plotOptions : { column : { pointWidth:30 }  },
			series : [datas],
			credits : {enabled : false}
		});
	}


	/**
	 * @info 多个图，没有下面说明，鼠标移动上去有显示x,y值。
	 * @param id(哪个DIV作图)
	 * @param names(x轴的数据),(type=图的类型，line,spline,column,pie)
	 * @param datas(
	 *            [{type: 'column',color:'#8bbc21',name: '医院',data: [5, 3, 4]},
	 *            {type: 'spline',name: '药店',data: [2, 2, 3]}] )
	 */
	function manyChart(id,names,datas){
		$('#'+id).highcharts({
			title : {text : ''},
			xAxis : {
				categories :names,
				labels: {rotation: -45,align: 'right',style: {fontSize: '13px'}}
			},
			yAxis : { min : 0,title : {text : ''} },
			legend:{enabled:false},
			tooltip : {
				formatter : function() {
					return '<b>' + this.x + '</b>'+ '：'+ this.point.y;
				}
			},
			plotOptions : { column : { pointWidth:30/2,borderPadding:0.1,borderWidth: 0 }  },
			series : datas,
			credits : {enabled : false}
		});
	}


	/**
	 * @info 多个图，没有下面说明，鼠标移动上去有显示x,y值。包含图例，默认在下边
	 * @param id(哪个DIV作图)
	 * @param names(x轴的数据),(type=图的类型，line,spline,column,pie)
	 * @param datas(
	 *            [{type: 'column',color:'#8bbc21',name: '医院',data: [5, 3, 4]},
	 *            {type: 'spline',name: '药店',data: [2, 2, 3]}] )
	 */
	function manyChart2(id,names,datas){
		$('#'+id).highcharts({
			title : {text : ''},
			xAxis : {
				categories :names,
				labels: {rotation: -45,align: 'right',style: {fontSize: '13px'}}
			},
			yAxis : { min : 0,title : {text : ''} },
			legend:{enabled:true},
			tooltip : {
				formatter : function() {
					return '<b>' + this.x + '</b>'+ '：'+ this.point.y;
				}
			},
			plotOptions : { column : { pointWidth:30,borderPadding:0.1,borderWidth: 0 }  },
			series : datas,
			credits : {enabled : false}
		});
	}


	/**
	 * 一个饼状图
	 * 
	 * @param id
	 * @param datas([{type:
	 *            'pie',name: '浏览器市场',data:
	 *            [['Firefox',45.0],['IE',26.8],['Safari',8.5],['Opera',6.2],['Others',0.7]]}])
	 */
	function onePie(id,datas){
		$('#'+id).highcharts({
			credits : {enabled : false},
			title: {text: ''},
			tooltip: {pointFormat: '{series.name}: <b>{point.percentage:.2f}%</b>'},
			plotOptions: {
				pie: {
					allowPointSelect: true,cursor: 'pointer', depth: 35,dataLabels: {enabled: true,format: '{point.name}'}
				}
			},
			series: datas
		});
	}


/**
 * 转换日期long为Date格式
 * 
 */
	function formatLong2Date(cvalue){
		var n=Number(cvalue);
		var date=new Date(n);
		var y=date.getFullYear();
		var m=date.getMonth()+1;
		var d=date.getDate();

		return y+"-"+append0(m)+"-"+append0(d);
	}


	/**
	 * 转换日期long为DateTime格式
	 * 
	 */
	function formatLong2DateTime(cvalue){
		var n=Number(cvalue);
		var date=new Date(n);
		var y=date.getFullYear();
		var m=date.getMonth()+1;
		var d=date.getDate();
		var hour = date.getHours();
		var minute = date.getMinutes();
		var second = date.getSeconds();

		return y+"-"+append0(m)+"-"+append0(d)+" "+append0(hour)+":"+append0(minute)+":"+append0(second);
	}
	
	
	/**
	 * 时间判断
	 * 
	*/	
	function JudgeDateTime(dataValue1,datavalue2){
		 if(dataValue1>datavalue2)
         {
             alert("结束日期不能小于开始日期");
             return false;
         }
         else
         {
            return true;
         }   
	}
	

	/**
	 * 短日期，形如 (2008-07)
	 * 
	 */
	function CheckMonth(dataValue){
		var r = dataValue.match(/^(\d{1,4})(-|\/)(\d{1,2})$/); 
		if(r==null)
		 {
			 return false; 
		 }
		else{
			return true; 
		}
	}
	

	/**
	 * 短日期，形如 (2008-07-22)
	 * 
	 */
	function CheckTime(dataValue){
		var r = dataValue.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
		if(r==null)
		 {
			 return false; 
		 }
		var d= new Date(r[1], r[3]-1, r[4]); 
		return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
	}
	

	/**
	 * 获取当月日期，形如 (2008-07)
	 * 
	 */
	function getCurrentMonth(dataValue){
		var curr_date = new Date();
		var curr_year = curr_date.getFullYear();
		var curr_month = curr_date.getMonth() + 1;
		if(curr_month < 10){
			curr_month = '0' + curr_month;
		}

		return curr_year + '-' +curr_month;
	}
	
	
	/**
	 * JudgeSingleDate 判断单个时间格式 
	 */
	function JudgeSingleDate(dateVal,flag,desc) {
		var b = dateVal.match(/^(\d{4})(-|\/)(\d{2})$/);
		var describe = desc;
		if(flag=="Year") {
			b = dateVal.match(/^(\d{4})$/); 
			describe = desc+"格式应为yyyy";
		} else if(flag=="Month") {
			b = dateVal.match(/^(\d{4})(-|\/)(\d{2})$/); 
			describe = desc+"格式应为yyyy-mm";
		} else if (flag=="Date") {
			b = dateVal.match(/^(\d{4})(-|\/)(\d{2})\2(\d{2})$/); 
			describe = desc+"格式应为yyyy-mm-dd";
		}
		if(dateVal == null || dateVal== "") {
			alert(desc+"不能为空.");
			return false;
		} else if(b == null) {
			alert(describe);
			return false; 
		} else {
			return true;
		}
	}
	

	/**
	 * JudgeDoubleDate 判断开始与结束日期格式
	 */
	function JudgeDoubleDate(beginDate,endDate,flag,desc) {
		var b = beginDate.match(/^(\d{4})(-|\/)(\d{2})$/); 
		var e = endDate.match(/^(\d{4})(-|\/)(\d{2})$/);
		var describe = desc;
		if(flag=="Month") {
			b = beginDate.match(/^(\d{4})(-|\/)(\d{2})$/); 
			e = endDate.match(/^(\d{4})(-|\/)(\d{2})$/);
			if(b == null)
				describe = "开始"+desc+"格式应为yyyy-mm";
			if(e == null)
				describe = "结束"+desc+"格式应为yyyy-mm";
		} else if (flag=="Date") {
			b = beginDate.match(/^(\d{4})(-|\/)(\d{2})\2(\d{2})$/); 
			e = endDate.match(/^(\d{4})(-|\/)(\d{2})\2(\d{2})$/);
			if(b == null)
				describe = "开始"+desc+"格式应为yyyy-mm-dd";
			if(e == null)
				describe = "结束"+desc+"格式应为yyyy-mm-dd";
		}
		if(beginDate == null || beginDate== "") {
			alert("开始"+desc+"不能为空.");
			return false;
		} else if(endDate == null || endDate== "") {
			alert("结束"+desc+"不能为空.");
			return false;
		} else if(b == null) {
			alert(describe);
			return false; 
		} else if(e == null){
			alert(describe);
			return false; 
		} else if(beginDate > endDate) {
			alert("结束"+desc+"不能小于开始"+desc+".");
			return false;
		} else {
			return true;
		}
	}
